package designMode.Singleton;

/**
 * Created by 小星打屁屁 on 2015/4/9.
 * contact me ==>243709758@qq.com
 * 延迟单例类的实例化
 * lazy initialization，也就是说第一次调用时初始Singleton，以后就不用再生成了。
 * 注意; singleton01 比 singleton02 安全些
 */
public class Singleton02 {

    private static Singleton02 instance = null ;

    public static synchronized  Singleton02 getInstance() {
        //注意到lazy initialization形式中的synchronized，这个synchronized很重要，
        // 如果没有synchronized，那么使用getInstance()是有可能得到多个Singleton实例
        if(instance == null){
            instance = new Singleton02() ;
        }
        return instance;
    }
}
